﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.Net.Mime;
using DAL;
using System.Collections.Generic;
using System.ComponentModel;
using Telerik.Web.UI;
using System.Globalization;



public partial class Cost_UserControl_uc_ChiPhiNhapHang : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            InitData();
        }
    }
    private void GetSoVanDon()
    {
        try
        {
            CateBO cate = new CateBO();
            List<ZD_PRC_SOVANDON_GETALLResult> lst = new List<ZD_PRC_SOVANDON_GETALLResult>();
            lst = cate.GetSoVanDon();
            if (lst != null)
            {
                ddlSoVanDon.DataSource = lst;
                ddlSoVanDon.DataTextField = "SOVANDON";
                ddlSoVanDon.DataValueField = "SOVANDON";
                ddlSoVanDon.DataBind();

                ListItem lstParent = new ListItem("--Chọn--", "");
                ddlSoVanDon.Items.Insert(0, lstParent);
                ddlSoVanDon.SelectedIndex = ddlSoVanDon.Items.IndexOf(lstParent);
            }
        }
        catch
        {
        }
    }
    private void InitData()
    {
        lblAlerting.Text = string.Empty;
        ddlSoVanDon.Enabled = true;
        GetSoVanDon();
        btnSave.Text = "Thêm mới";
        hdfMasterId.Value = "-1";
        Search(int.Parse(hdfMasterId.Value));
    }

    public void Search(int Id)
    {
        lblAlerting.Text = string.Empty;
        CostBO pur = new CostBO();
        List<ZD_PRC_CHIPHI_GETResult> result = new List<ZD_PRC_CHIPHI_GETResult>();
        result = pur.SearchChiPhi(Id);
        grdList.DataSource = result;
        grdList.DataBind();

    }

    protected void btnSave_Click(object sender, EventArgs e)
    {
        try
        {
            CostBO pur = new CostBO();
            if (ddlSoVanDon.SelectedValue.Length <= 0)
            {
                lblAlerting.Text = "Bạn chưa chọn số vận đơn!";
                return;
            }

            bool check = false;
            if (grdList.Rows.Count > 0)
            {
                for (int i = 0; i < grdList.Rows.Count; i++)
                {
                    // Cell 0 la checkbox
                    CheckBox chkSave = ((CheckBox)grdList.Rows[i].Cells[0].FindControl("chkSave"));
                    if (chkSave.Checked)
                    {
                        check = true;
                        break;


                    }
                }
                if (!check)
                {
                    lblAlerting.Text = "Không có dữ liệu!";
                    return;
                }

            }
            else
            {
                lblAlerting.Text = "Không có dữ liệu!";
                return;
            }
            string strDSID = string.Empty;

            for (int i = 0; i < grdList.Rows.Count; i++)
            {
                // Cell 0 la checkbox
                CheckBox chkSave = ((CheckBox)grdList.Rows[i].Cells[0].FindControl("chkSave"));
                if (chkSave.Checked)
                {
                    string strID = ((HiddenField)grdList.Rows[i].Cells[0].FindControl("hdfID")).Value;
                    strDSID += strID + "@";


                }
            }
            ZD_COST obj = new ZD_COST();
            obj.SOVANDON = ddlSoVanDon.SelectedValue;
            obj.CREATEUSER = int.Parse(Session["UserID"].ToString());
            // kiem tra xem so van don nay nhap chua
            if (pur.CostCheckSoVanDon(ddlSoVanDon.SelectedValue) <= 0)
            {
                hdfMasterId.Value = pur.CostInsert(obj).ToString();
                if (int.Parse(hdfMasterId.Value) > 0)
                {
                    // save detail
                    ZD_COST_BELONG objBelong = new ZD_COST_BELONG();
                    objBelong.MASTERID = int.Parse(hdfMasterId.Value);
                    objBelong.CREATEUSER = int.Parse(Session["UserID"].ToString());
                    int rs = pur.Cost_BelongInsert(objBelong, strDSID);
                    if (rs > 0)
                    {
                        lblAlerting.Text = "Lưu dữ liệu thành công!";
                        ddlSoVanDon.Enabled = false;
                        btnSave.Text = "Cập nhật";
                        return;
                    }
                    else
                    {
                        lblAlerting.Text = "Lưu dữ liệu thất bại, bạn vui lòng thử lại sau!";
                        return;
                    }
                }
                else
                {
                    lblAlerting.Text = "Số vận đơn này đã được thêm mới!";
                    return;
                }
            }
            else
            {



                if (int.Parse(hdfMasterId.Value) > 0)
                {
                    // save detail
                    ZD_COST_BELONG objBelong = new ZD_COST_BELONG();
                    objBelong.MASTERID = int.Parse(hdfMasterId.Value);
                    objBelong.CREATEUSER = int.Parse(Session["UserID"].ToString());
                    int rs = pur.Cost_BelongInsert(objBelong, strDSID);
                    if (rs > 0)
                    {

                        lblAlerting.Text = "Bạn cập nhật dữ liệu thành công!";
                        ddlSoVanDon.Enabled = false;
                        btnSave.Text = "Cập nhật";
                        return;
                    }
                    else
                    {
                        lblAlerting.Text = "Cập nhật dữ liệu thất bại, bạn vui lòng thử lại sau!";
                        return;
                    }
                }
                else
                {
                    lblAlerting.Text = "Số vận đơn này đã được thêm mới!";
                    return;
                }
            }
        }

        catch (Exception ex)
        {


        }
    }

    protected void btnXuat_Click(object sender, EventArgs e)
    {
        try
        {
            CostBO pur = new CostBO();

            bool check = false;
            if (grdList.Rows.Count > 0)
            {
                for (int i = 0; i < grdList.Rows.Count; i++)
                {
                    // Cell 0 la checkbox
                    CheckBox chkSave = ((CheckBox)grdList.Rows[i].Cells[0].FindControl("chkSave"));
                    if (chkSave.Checked)
                    {
                        check = true;
                        break;


                    }
                }
                if (!check)
                {
                    lblAlerting.Text = "Không có dữ liệu!";
                    return;
                }

            }
            else
            {
                lblAlerting.Text = "Không có dữ liệu!";
                return;
            }
            string strDSID = string.Empty;

            for (int i = 0; i < grdList.Rows.Count; i++)
            {
                // Cell 0 la checkbox
                CheckBox chkSave = ((CheckBox)grdList.Rows[i].Cells[0].FindControl("chkSave"));
                if (chkSave.Checked)
                {
                    string strID = ((HiddenField)grdList.Rows[i].Cells[0].FindControl("hdfID")).Value;
                    strDSID += strID + "@";


                }
            }
            OutReport outRPT = new OutReport();
            List<ZD_PRC_ZD_GETINVOICEResult> result = new List<ZD_PRC_ZD_GETINVOICEResult>();
            result = pur.Cost_XinPhep(strDSID);
            DataTable dt = ConvertToDataTable(result);
            DataTable Report = new DataTable();
            Report = dt;
            Report.TableName = "Report";
            DataTable[] arrTable = { Report };
            outRPT.OutReportToScreen(MapPath("~/RPTTemplate/DMXINPHEP_TEMPLATE.xls"), arrTable, "_Permit.xls");



        }

        catch (Exception ex)
        {


        }
    }
    // Lay master
    private DataTable ConvertToDataTable<ZD_PRC_ZD_GETINVOICEResult>(List<ZD_PRC_ZD_GETINVOICEResult> data)
    {
        PropertyDescriptorCollection properties =
           TypeDescriptor.GetProperties(typeof(ZD_PRC_ZD_GETINVOICEResult));
        DataTable table = new DataTable();
        foreach (PropertyDescriptor prop in properties)
            table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
        foreach (ZD_PRC_ZD_GETINVOICEResult item in data)
        {
            DataRow row = table.NewRow();
            foreach (PropertyDescriptor prop in properties)
                row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
            table.Rows.Add(row);
        }
        return table;

    }
}
